package day07;

/*
@Author: 王少杰
@Date: 2025/1/7
@Time: 9:04
@FileName: Demo01.java
@描述:
单元测试框架:
    对代码中最小的功能单元进行测试。Java最小功能单元是方法
单元测试框架:
    JUnit(java自带的)、Testng(开源的一个测试框架)
    类似unittest、pytest测试框架
好处
    非常方便的组织测试代码
    生成测试报告，有多少用例成功、多少失败
    生成代码覆盖率报告。开发的代码多少行、多少类、多少方法被覆盖了。
测试驱动开发:TDD Test Driven Development
    开发人员先写测试代码，再去实现功能
单元测试
    一般是由开发人员完成
    也有测试人员实现的。
转测试入口标准
    冒烟测试功能
    单元测试代码覆盖率达到100%
*/

public class Demo01 {
    public static void main(String[] args) {
        //使用边界值、等价类的方式设计
        System.out.println(oct2dec("77777"));//长度最大值

        System.out.println(oct2dec(""));//无效等价类

        System.out.println(oct2dec("0"));//长度最小值

        System.out.println(oct2dec("+7777"));

        System.out.println(oct2dec("-7777"));

        System.out.println(oct2dec("8787"));//非法八进制数字

        System.out.println(oct2dec(null));//空值

        System.out.println(oct2dec("123456"));//范围内的值

        System.out.println("1234567");//超过长度的

    }

    public static int oct2dec(String oct) {
        if (oct == null) {
            System.out.println("输入的值为空");
            return 9999999;//返回一个错误码
        }
        if (oct.isEmpty() || oct.length() > 5) {
            System.out.println("输入的八进制值长度不正确");
            return 9999999;
        }
        try {
            return Integer.parseInt(oct, 8);
        }
        catch (NumberFormatException e) {
            System.out.println("非法的八进制数组");
            return 9999999;
        }
    }
}
